Computing systems have become ubiquitous, ranging from small embedded devices to phones and tablets to PCs and backend servers. Each of these computing systems includes some type of data storage and typically, many different types of data storage. For example, a computing system may include solid-state storage and a hard drive or set of hard drives. These different storage devices may each have partitions, or logical allocations of data storage. Partitions are typically established upon the hardware's initial use. Thereafter, it becomes very difficult to rearrange or resize partitions. As such, larger-than-necessary partition sizes are chosen initially, resulting in wasted space on the storage device.